/*
 * Copyright(c) 2012 Donghong Inc.
 */
package com.hatic.sms;

import org.jxstar.service.note.SenderI;

import com.hatic.sms.client.SMSReq;
import com.hatic.sms.client.SMSRes;
import com.hatic.sms.client.SMSWebServiceAdapterServiceLocator;
import com.hatic.sms.client.SMSWebServiceAdapterSoapBindingStub;

/**
 * 短信发送类。
 *
 * @author TonyTan
 * @version 1.0, 2012-5-24
 */
public class PmSender implements SenderI {
	public void init() {}

	public String massSend(String dst, String msg, String time, String subNo,
			String txt) {
		//取得SMSReq对象
		SMSReq req=new SMSReq();
		req.setReqFlag("4");//短信发送命令，默认是4，必备
		req.setApCode("1011");//应用ID
		req.setServiceId("10");//业务ID
		req.setApPassword("123456");//接口密码
		req.setDeliver("0");//要求返回短信发送状态报告标志，群发短信不返回状态报告。返回状态报告deliver=1，不返回状态报告deliver=0
		req.setLinkID("");//该属性没有作用
		req.setDestNumber(dst);//手机号码或者接收者用户ID，必备
		req.setSndUID("admin"); //发送者用户ID
		req.setMsgContent(msg);//短信内容，必备。如果短信是wap push短信，短信内容分为两部分，以"|"为分隔符，前面是url，后面是内容。例：req.setMsgContent("http://218.57.146.149/mas/wap |欢迎访问mas wap网站")
		req.setTitle("PM_SMS");//短信标题，可选
		req.setAtTime("");//定时发送时间，可选
		req.setInspect("0");//鉴权标志，0是不鉴权，1是鉴权
		req.setUserFlag("1");//0表示接收者是用户ID，1是接收者是手机号码
		req.setTimeFlag("0");//0表示实时发送短信，1表示定时发送短信，并且设置定时发送时间
		req.setWappush ("0");//0表示普通短信，1表示wappush短信
		req.setAppSeq("66");//设置短信的扩展号码，长度不能超过10位

		String code = "0", info = "";
		try {
			//调用webservercie接口，发送短信。
			SMSWebServiceAdapterSoapBindingStub binding;
			binding =(SMSWebServiceAdapterSoapBindingStub)new SMSWebServiceAdapterServiceLocator().getSMSWebServiceAdapter();
			
			binding.setTimeout(30000);
			
			SMSRes res = binding.sendSMS(req);//取得发送状态信息
			code = res.getRtnCode();// 返回代码，0是正常
			info = res.getRtnInfo();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		boolean ret= Integer.parseInt(code) >= 0;
		String iret = "0";
		if (ret) iret = "1";
		return "ret=" + iret + "&info=" + code + ";" + info;
	}

	public String massSend(String dst, String msg) {
		return massSend(dst, msg, "", "", "");
	}

	public String readSms() {
		return "";
	}
}
